import {
	createApp
} from 'vue'
import App from './App.vue'
// 导入axios并绑定到全局变量中
import axios from "@/axios/index.js"
// 导出socket对象
import socket from "@/socket/index.js"
// 导入并绑定pinia
import pinia from "@/store/index.js"
// 导入并绑定路由
import router from "@/routes/index.js"

import ElementPlus from 'element-plus'
import * as ElementPlusIconsVue from '@element-plus/icons-vue'

// 这里需要多导入一个样式，给模块使用
import 'element-plus/dist/index.css'

let app = createApp(App);

// use是给中间件中的,需要vue的相关组件才可以使用
app.use(pinia);
app.use(router);
app.use(ElementPlus);
// 将axios绑定到全局变量中
app.config.globalProperties.$axios = axios;
// 将socket连接对象,绑定到全局变量中
app.config.globalProperties.$socket = socket;

// 循环注册全局图标组件
for (const [key, component] of Object.entries(ElementPlusIconsVue)) {
	app.component(key, component)
}

app.mount('#app')